package d7_tcp04;

import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

public class Server01 {
    //2、定义一个集合,存储所有的上线的客户端
    public static List<Socket> allClientSocket = new ArrayList<>();

    public static void main(String[] args) throws Exception {
        System.out.println("==服务端进行启动了==");
        //目标:实现TCP通信的群聊
        //1、注册端口
        ServerSocket serverSocket = new ServerSocket(8848);

        //主线成负责接受没有给客户端,子线程用于处理数据的收发
        while (true) {
            //2、开始等待客户端的Socket管道接通
            Socket socket = serverSocket.accept();

            //4、每有一个客户端上线了,就是上面的管道接通了,就添加到集合中存储,为群聊做准备
            allClientSocket.add(socket);

            //3、追踪每一个客户端,上线逻辑
            System.out.println(socket.getInetAddress().getHostAddress() + ":" + socket.getPort() + "上线了~~");

            //5、将每一个客户交给每一个子线程
            new ServerReaderThread(socket).start();
        }


    }
}
